package com.example.children.FileService;

import com.example.children.Model.Teacher;
import java.util.List;
import com.example.children.DTO.TeacherClassDTO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

public interface teacherInterface {

    /**
     * 插入一个新的教师信息。
     *
     * @param teacher 要插入的教师对象，包含教师的所有信息
     */
    void insertTeacher(Teacher teacher);

    /**
     * 查询所有的教师信息。
     *
     * @return 返回一个教师列表，包含所有教师的详细信息
     */
    List<Teacher> getAllTeachers();

    /**
     * 根据教师 ID 更新教师信息。
     *
     * @param teacher 包含更新信息的教师对象，根据 ID 来更新已有的教师信息
     */
    void updateTeacher(Teacher teacher);

    /**
     * 根据教师 ID 删除教师信息。
     *
     * @param id 教师的 ID，用于删除指定的教师信息
     */
    void deleteTeacher(String id);

    /**
     * 获取教师分页数据，并包含教师所在的班级信息。
     *
     * @param pageNo 当前页码
     * @param pageSize 每页显示的记录数
     * @return 返回一个分页对象，包含教师及班级的相关信息
     */
    Page<TeacherClassDTO> getTeacherAllWithClassPage(int pageNo, int pageSize);

    /**
     * 根据教师和班级条件查询教师信息。
     *
     * @param teacher 包含查询条件的教师对象
     * @return 返回符合条件的教师信息列表
     */
    List<TeacherClassDTO> selectToTeachers(TeacherClassDTO teacher);
}

